Celem projektu jest określenie, jakie mogą być główne przyczyny karłowacenia śledzi oceanicznych wyławianych w Europie
library(ggplot2)
library(corrplot)
library(dplyr)
library(knitr)
library(tidyr)
library(plotly)
library(caret)
data <- read.csv("sledzie.csv", sep=',')
#data
Dane zawierały znaki zapytania - zamieniono je na NA, następnie usunięto rekordy, w których występowały. Z powodu występowania znaków zapytania część kolumn otrzymało (niesłusznie) typ char - zamieniono na numeric
## X length cfin1 cfin2 chel1 chel2 lcop1 lcop2 fbar recr cumf
## 0 0 1581 1536 1555 1556 1653 1591 0 0 0
## totaln sst sal xmonth nao
## 0 1584 0 0 0
## X length cfin1 cfin2
## Min. : 1 Min. :19.0 Min. : 0.0000 Min. : 0.0000
## 1st Qu.:13233 1st Qu.:24.0 1st Qu.: 0.0000 1st Qu.: 0.2778
## Median :26308 Median :25.5 Median : 0.1111 Median : 0.7012
## Mean :26316 Mean :25.3 Mean : 0.4457 Mean : 2.0269
## 3rd Qu.:39447 3rd Qu.:26.5 3rd Qu.: 0.3333 3rd Qu.: 1.7936
## Max. :52580 Max. :32.5 Max. :37.6667 Max. :19.3958
## chel1 chel2 lcop1 lcop2
## Min. : 0.000 Min. : 5.238 Min. : 0.3074 Min. : 7.849
## 1st Qu.: 2.469 1st Qu.:13.427 1st Qu.: 2.5479 1st Qu.:17.808
## Median : 5.750 Median :21.435 Median : 7.0000 Median :24.859
## Mean :10.016 Mean :21.197 Mean : 12.8386 Mean :28.396
## 3rd Qu.:11.500 3rd Qu.:27.193 3rd Qu.: 21.2315 3rd Qu.:37.232
## Max. :75.000 Max. :57.706 Max. :115.5833 Max. :68.736
## fbar recr cumf totaln
## Min. :0.0680 Min. : 140515 Min. :0.06833 Min. : 144137
## 1st Qu.:0.2270 1st Qu.: 360061 1st Qu.:0.14809 1st Qu.: 306068
## Median :0.3320 Median : 421391 Median :0.23191 Median : 539558
## Mean :0.3306 Mean : 519877 Mean :0.22987 Mean : 515082
## 3rd Qu.:0.4650 3rd Qu.: 724151 3rd Qu.:0.29803 3rd Qu.: 730351
## Max. :0.8490 Max. :1565890 Max. :0.39801 Max. :1015595
## sst sal xmonth nao
## Min. :12.77 Min. :35.40 Min. : 1.000 Min. :-4.89000
## 1st Qu.:13.60 1st Qu.:35.51 1st Qu.: 5.000 1st Qu.:-1.90000
## Median :13.86 Median :35.51 Median : 8.000 Median : 0.20000
## Mean :13.87 Mean :35.51 Mean : 7.252 Mean :-0.09642
## 3rd Qu.:14.16 3rd Qu.:35.52 3rd Qu.: 9.000 3rd Qu.: 1.63000
## Max. :14.73 Max. :35.61 Max. :12.000 Max. : 5.08000
## X length cfin1 cfin2 chel1 chel2 lcop1 lcop2 fbar recr
## 1 1 22.5 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## 2 2 25.0 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## 3 3 25.5 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## 4 4 24.0 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## 5 6 24.0 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## 6 7 23.5 0.02778 0.27785 2.46875 21.43548 2.54787 26.35881 0.356 482831
## cumf totaln sst sal xmonth nao
## 1 0.3059879 267380.8 14.30693 35.51234 7 2.8
## 2 0.3059879 267380.8 14.30693 35.51234 7 2.8
## 3 0.3059879 267380.8 14.30693 35.51234 7 2.8
## 4 0.3059879 267380.8 14.30693 35.51234 7 2.8
## 5 0.3059879 267380.8 14.30693 35.51234 7 2.8
## 6 0.3059879 267380.8 14.30693 35.51234 7 2.8
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
W trakcie analizy danych odkryto, że w kolumnie “miesiące” występują numery 1-12 oznaczające styczeń-grudzień. Do analizy przydatne mogłoby się okazać dopisanie atrybutu roku; W tym kroku podjęto się tej próby. Ponieważ atrybut recr to ROCZNY narybek, a wiemy, że śledź z roku na rok malał, dokonano grupowania po kolumnie ‘recr’ i posortowano względem ‘length’ Okazało się to fałszywym tropem, co pokazuje brak porządku w kolejności atrybutu ‘year’, gdy posortujemy tabelę po atrybucie ‘length’ (pokazane poniżej)
## # A tibble: 42,488 × 17
## # Groups: recr [52]
## X length cfin1 cfin2 chel1 chel2 lcop1 lcop2 fbar recr cumf totaln
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 44776 19 0.747 0.634 14.7 28.0 16.4 35.2 0.465 351797 0.281 3.75e5
## 2 44316 19 0 0.117 12.2 39.6 12.5 41.7 0.138 360061 0.267 2.89e5
## 3 26642 19.5 0 1.79 3.71 31.4 3.91 36.5 0.337 140515 0.346 1.82e5
## 4 44439 19.5 0.747 0.634 14.7 28.0 16.4 35.2 0.465 351797 0.281 3.75e5
## 5 48152 19.5 0.0933 6.53 4.32 28.1 4.47 43.0 0.231 459347 0.259 2.64e5
## 6 8949 19.5 0.0278 0.278 2.47 21.4 2.55 26.4 0.356 482831 0.306 2.67e5
## 7 51889 19.5 0 0.01 1.02 26.0 1.06 34.1 0.1 1322000 0.0922 6.48e5
## 8 28038 20 0 1.79 3.71 31.4 3.91 36.5 0.337 140515 0.346 1.82e5
## 9 33672 20 0 1.79 3.71 31.4 3.91 36.5 0.337 140515 0.346 1.82e5
## 10 24706 20 0.101 0 5.10 15.3 5.72 16.8 0.425 186562 0.218 1.58e5
## # … with 42,478 more rows, and 5 more variables: sst <dbl>, sal <dbl>,
## # xmonth <dbl>, nao <dbl>, year <int>
Korelacje prezentuje poniższy wykres korelacji. Interesuje nas korelacja zmiennej ‘length’ z pozostałymi.
Co ciekawe, korelacja pomiędzy długością śledzia a rokiem połowu (a więc kolumny ‘recr’ oraz autorska ‘year’) jest praktycznie żadna.
Korelacje dodatnie: - Dostępność planktonu - Calanus helgolandicus gat. 1, - Dostępność planktonu - widłogony gat. 1, - Ułamek pozostawionego narybku, - Liczba złowionych śledzi (słaba korelacja)
Korelacje ujemne: - Temperatura powierzchni wody [C] (najsilniejsza korelacja z listy) - Oscylacja północnoatlantycka
## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Random Forest
## Random Forest
##
## 29744 samples
## 15 predictor
##
## Pre-processing: centered (15), scaled (15)
## Resampling: Cross-Validated (2 fold, repeated 5 times)
## Summary of sample sizes: 14872, 14872, 14872, 14872, 14871, 14873, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 1.102911 0.5583711 0.8669135
##
## Tuning parameter 'mtry' was held constant at a value of 8
Regresja liniowa
## Linear Regression
##
## 29744 samples
## 15 predictor
##
## No pre-processing
## Resampling: Cross-Validated (2 fold, repeated 5 times)
## Summary of sample sizes: 14872, 14872, 14873, 14871, 14871, 14873, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 1.329747 0.3572763 1.050954
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
KNN
## k-Nearest Neighbors
##
## 29744 samples
## 15 predictor
##
## Pre-processing: centered (15), scaled (15)
## Resampling: Cross-Validated (10 fold)
## Summary of sample sizes: 26768, 26771, 26769, 26771, 26770, 26770, ...
## Resampling results across tuning parameters:
##
## k RMSE Rsquared MAE
## 5 1.122972 0.5497681 0.8793139
## 7 1.104927 0.5608999 0.8662097
## 9 1.097654 0.5653425 0.8613957
## 11 1.093552 0.5676887 0.8588474
## 13 1.094799 0.5662373 0.8592613
## 15 1.096071 0.5647939 0.8607585
## 17 1.097732 0.5631153 0.8623495
## 19 1.099275 0.5616182 0.8635322
## 21 1.101231 0.5599150 0.8657217
## 23 1.102697 0.5586710 0.8674308
##
## RMSE was used to select the optimal model using the smallest value.
## The final value used for the model was k = 11.
Porównując wartości RMSE, Rsquared i MAE wynika, że zgodnie z oczekiwaniami najlepszym modelem jest Random Forest
Wykres przedstawia ważność atrybutów dla RandomForest. Kilku atrybutów (X - nr pomiaru, oraz xmonth - miesiąc w roku) nie bierzemy pod uwagę: X ukazuje skutek, a nie przyczynę karłowacenia, a xmonth nie udziela żadnej informacji ze względu na brak informacji nt. roku.
Wynika z tego, że największy wpływ na karłowacenie śledzi mają: - Temperatura przy powierzchni wody - Roczny narybek - Natężenie połowów w regionie
## rf variable importance
##
## Overall
## sst 100.00000
## X 83.64018
## recr 21.48642
## xmonth 14.79741
## fbar 10.90182
## lcop1 10.70143
## lcop2 8.49797
## totaln 6.92399
## cfin2 6.82187
## chel2 5.14182
## cumf 3.32833
## cfin1 2.06186
## sal 1.02046
## chel1 0.08686
## nao 0.00000